﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GrapplingHookGameData
{
    public class Constants
    {
        #region Game wide
        public const byte TILE_WIDTH = 64;
        public const byte TILE_HEIGHT = 64;
        public const float GRAVITY = 450.0f;
        public const float HEALTH_ANIMATE_SPEED = 0.01f;
        public const string LEVEL_DIRECTORY = "levels/";                  //must end with "/"
        public const string LEVEL_TILE_DIRECTORY = "levels/tiles/";     //must end with "/"
        public const int MAX_ROUNDS = 5;
        public const int ZOOM_BORDER = 200;
        public const int SECONDS_TO_AUTOSTART_ROUND = 5;
        public const float COLLISION_GRID_SIZE = 0.0f;  //cell size for pysics engine collision detection, set to 0 for auto.

        #endregion

        #region Player
        public const float PLAYER_WIDTH = 40.0f;
        public const float PLAYER_HEIGHT = 100.0f;
        public const int PLAYER_HEALTH = 100;
        public const float THROW_IMPULSE = 300.0f;
        public const int PLAYER_MAX_GRENADES = 5;
        public const int PLAYER_MAX_SHURIKENS = 5;
        public const int PLAYER_THROW_COOLDOWN_MS = 300;
        public const float PLAYER_MASS = 1;
        public const int PLAYER_FRAME_ANIMATION_TIME_MS = 70;
        #endregion

        #region Grenade
        public const int GRENADE_TIMER_MS = 3000;
        public const int GRENADE_DAMAGE = 20;
        public const float GRENADE_EFFECT_DISTANCE = 300.0f;
        public const float GRENADE_EFFECT_IMPULSE = 300.0f;
        public const float GRENADE_MASS = 1;
        public const int GRENADE_IGNITE_DELAY_MS = 100;
        public const int GRENADE_EXPLOSION_TIME_MS = 500;
        #endregion

        #region Shuriken
        public const float SHURIKEN_MASS = 0.35f;
        public const int SHURIKEN_DAMAGE = 10;
        public const int SHURIKEN_FRAME_ANIMATION_TIME_MS = 40;
        #endregion


        #region Rope
        public const float ROPE_MAX_LENGTH = 750.0f;
        public const float ROPE_JOINT_DISTANCE = 25.0f;
        #endregion

        public const int SOUND_IDLE_VELOCITY = 30;  //at this speed and below objects make no sound hitting walls etc.
    }
}
